import wxValidate from 'wechat-validate'
const app = getApp()

Page({
  data: {
    countDownVisible: false, // 控制是否显示倒计时
    mobile:'',
    code:null
  },
  // 注册校验工具
  behaviors: [wxValidate],
  // 填写校验规则
  rules:{
    mobile:[
      {required:true,message: '请输入手机号'},
      {pattern:/^1[3-8]\d{9}$/ ,message: '请输入正确的手机号'},
    ],
    code:[
      {required:true,message: '请输入验证码'},
      {pattern:/^\d{6}$/ ,message: '请输入正确的验证码'},
    ]
  },
  onLoad(options){
    console.log(options,'options');
    this.returnUrl = options.returnUrl
  },
  async getSmsCode(){
    // 检验手机号是否合法
   const {valid,message} =  this.validate('mobile')
   if (!valid) return wx.utils.toast(message)  // 检验失败提示信息
    // 显示倒计时
    this.setData({countDownVisible: true})
    // 发送请求获取验证码,开发阶段获取验证码时测试，上线是直接发送到用户的手机
   const res =  await wx.http.get('/code',{mobile:this.data.mobile})
   if (res.code !== 10000) return wx.utils.toast('获取验证码失败，稍后重试!')

   
  },
  // 实现登录
  async formSubmit(){
    // 兜底检验  ---> this.validate()不传参数是检验所有的表单项 返回值是true|false
    if (!this.validate()) return  wx.utils.toast('请输入正确验证码')
    // 发送请求，实现登录
    const {code,data} =  await wx.http.post('/login',{
      mobile: this.data.mobile,
      code: this.data.code
    })
    if (code !== 10000) return wx.utils.toast('登录失败，请稍后重试')

    // 保存token---》保存到本地存储，保存到应用实例
    // wx.setStorageSync('token', data.token)
    // wx.setStorageSync('refreshToken', data.refreshToken)
    // // 保存到应用实例
    // app.token = data.token
    // app.refreshToken = data.refreshToken
    app.setToken('token',data.token)
    app.setToken('refreshToken',data.refreshToken)

    // 跳转页面 --->回到原来退出的页面  先得获取到退出页面时的页面路径
    // wx.redirectTo 关闭当前页，去新的页面
    wx.redirectTo({
      url: this.returnUrl,
    })


  },
  countDownChange(ev) {
    console.log(ev,'ev');
    this.setData({
      timeData: ev.detail, 
      // 控制倒计时显示的时机
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})
